// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

const db = cloud.database()
const villagerVotesCollection = db.collection('villagerVotes')

// 云函数入口函数
exports.main = async (event, context) => {
  console.log('getRankList 云函数被调用，参数:', event);
  
  const wxContext = cloud.getWXContext()
  const { limit = 50 } = event // 默认获取前50名
  
  try {
    console.log('开始查询数据库...');
    
    // 检查集合是否存在
    try {
      const { data } = await villagerVotesCollection
        .orderBy('votes', 'desc') // 按票数降序排列
        .limit(limit)
        .get()
      
      console.log('查询结果:', data);
      
      return {
        success: true,
        data: data || []
      }
    } catch (dbError) {
      console.error('数据库查询错误:', dbError);
      
      // 如果集合不存在，返回空数据
      if (dbError.errCode === -502005) {
        console.log('集合不存在，返回空数据');
        return {
          success: true,
          data: [],
          message: '暂无投票数据'
        }
      }
      
      throw dbError;
    }
  } catch (error) {
    console.error('getRankList 错误:', error)
    return {
      success: false,
      message: '获取排行榜失败',
      error: error.message || error
    }
  }
}